home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm16.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
43KB
|
1,982 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
/*No:NATIVE_JVM_INVOKESTATIC.jvm_define_function*/
/*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_function*/
T0*oBC304tmp_class=NULL;
T2 r303idx_methodref(T0* a1){
T2 R=0;
T0* _cp=NULL;
T0* _alias_string=NULL;
T2 _i=0;
_cp=oBC12constant_pool;
_alias_string=/*X294alias_string*/((T0*)(((T296*)a1))->_alias_string/*44*/);
/*[IF*/
if((_alias_string)==((void*)(NULL))){
r21add_position(X294start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms304_248880);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_i=1;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_class))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\56'))) {
r7extend((T7*)(oBC304tmp_class),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_name))))->_count)=(0);
/*]*/
while (!((/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/)==('\40'))) {
r7extend((T7*)(oBC304tmp_name),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
_i=(_i)+(1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC304tmp_descriptor))))->_count)=(0);
/*]*/
while (!((_i)>((((T7*)_alias_string))->_count/*4*/))) {
r7extend((T7*)(oBC304tmp_descriptor),/*(IRF4.6item*/((((T7*)_alias_string))->_storage/*0*/)[(_i)-(1)]/*)*/);
_i=(_i)+(1);
}
R=r29idx_methodref3(((T29*)_cp),oBC304tmp_class,oBC304tmp_name,oBC304tmp_descriptor);
return R;
}
/*No:NATIVE_JVM_INVOKESTATIC.use_current*/
void r303jvm_mapping_function(T0* a1,T0* a2,T0* a3){
T0* _ca=NULL;
T2 _idx=0;
T2 _space=0;
_ca=oBC12code_attribute;
r24drop_target((T24*)(oBC12jvm));
_space=r24push_arguments((T24*)(oBC12jvm));
_idx=r303idx_methodref((((T386*)a1))->_base_feature/*36*/);
_space=(X52jvm_stack_space((((T386*)a1))->_result_type/*44*/))-(_space);
r28opcode_invokestatic(((T28*)_ca),_idx,_space);
}
/*No:NATIVE_JVM_INVOKESTATIC.jvm_add_method_for_procedure*/
T0*oBC304tmp_descriptor=NULL;
/*No:NATIVE_JVM_INVOKESTATIC.jvm_mapping_procedure*/
T0*oBC304tmp_name=NULL;
/*No:NATIVE_JVM_INVOKESTATIC.jvm_define_procedure*/
/*No:NATIVE_JVM_INVOKESTATIC.fatal_error*/
void r72loading_path_add(T72* C,T0* a1,T0* a2,T2 a3){
T0* _line=NULL;
T0* _file=NULL;
/*[IF*/
if(((a3)>(5))||((r73count(((T73*)a1)))>(1024))){
r31w_put_string(((T0*)ms72_83580));
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,1024);
_line=(T0*)n;
}
r72append_lp_in(C,_line,a1);
r31w_put_string(_line);
exit(1);
}
/*FI]*/
{T61*n=malloc(sizeof(*n));
*n=M61;
/*[IRF3.1make*//*]*/
_file=(T0*)n;
}
r31sfr_connect((T31*)(oBC12echo),_file,a2);
/*[IF*/
if(/*(IRF4.7is_connected*/((((T61*)_file))->_path/*4*/)!=(NULL)/*)*/){
r31put_string((T31*)(oBC12echo),((T0*)ms72_25809));
r31put_string((T31*)(oBC12echo),a2);
r31put_string((T31*)(oBC12echo),((T0*)ms72_10070));
while (!(r61end_of_input(((T61*)_file)))) {
r61read_line(((T61*)_file));
_line=r7twin((T7*)(oBC62last_string));
/*[IF*/
if(r7has_suffix(((T7*)_line),((T0*)ms72_18194))){
r72loading_path_add(C,a1,_line,(a3)+(1));
}
else if(!(/*(IRF4.7empty*/((((T7*)_line))->_count/*4*/)==(0)/*)*/)){
r73add_last(((T73*)a1),_line);
}
/*FI]*/
}
r61disconnect(((T61*)_file));
}
/*FI]*/
}
/*No:SYSTEM_TOOLS.system_name*/
void r72parent_directory(T72* C,T0* a1){
/*[IF*/
if(r72slash_separator(C)){
r7remove_last(((T7*)a1),1);
while (!((r7last(((T7*)a1)))==('\57'))) {
r7remove_last(((T7*)a1),1);
}
}
else if(r72backslash_separator(C)){
r7remove_last(((T7*)a1),1);
while (!((r7last(((T7*)a1)))==('\134'))) {
r7remove_last(((T7*)a1),1);
}
}
else if(r72colon_separator(C)){
r7remove_last(((T7*)a1),1);
while (!((r7last(((T7*)a1)))==('\72'))) {
r7remove_last(((T7*)a1),1);
}
}
else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
r7remove_last(((T7*)a1),1);
while (!((r7last(((T7*)a1)))==('\56'))) {
r7remove_last(((T7*)a1),1);
}
r7remove_last(((T7*)a1),1);
r7extend(((T7*)a1),'\135');
}
/*FI]*/
}
/*No:SYSTEM_TOOLS.windows_system*/
/*No:SYSTEM_TOOLS.help_suffix*/
/*No:SYSTEM_TOOLS.fz_03*/
/*No:SYSTEM_TOOLS.vms_system*/
/*No:SYSTEM_TOOLS.class_suffix*/
/*No:SYSTEM_TOOLS.fz_se*/
/*No:SYSTEM_TOOLS.beos_system*/
T0* r72get_environment_variable(T72* C,T0* a1){
T0* R=NULL;
T8 _p=0;
_p=r7to_external(((T7*)a1));
R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
return R;
}
/*No:SYSTEM_TOOLS.fz_sys*/
/*No:SYSTEM_TOOLS.fz_system_se*/
/*No:SYSTEM_TOOLS.fz_bin*/
/*No:SYSTEM_TOOLS.fz_loadpath_se*/
/*No:SYSTEM_TOOLS.dos_system*/
/*No:SYSTEM_TOOLS.sys_directory*/
/*No:SYSTEM_TOOLS.fz_b0*/
T0*oBC72system_list=NULL;
void r72read_loading_path_in(T72* C,T0* a1){
r72loading_path_add(C,a1,((T0*)ms72_18194),1);
r7copy((T7*)(((T0*)ms12_583550)),(C)->_sys_directory/*4*/);
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms72_8613));
r7append((T7*)(((T0*)ms12_583550)),(C)->_system_name/*0*/);
r72loading_path_add(C,a1,((T0*)ms12_583550),1);
}
void r72bad_use_exit(T72* C,T0* a1){
r31w_put_string(((T0*)ms72_46940));
r31w_put_string(a1);
r31w_put_string(((T0*)ms72_303));
r7copy((T7*)(((T0*)ms12_583550)),(C)->_sys_directory/*4*/);
r72parent_directory(C,((T0*)ms12_583550));
r72add_directory(C,((T0*)ms12_583550),((T0*)ms72_966));
r7append((T7*)(((T0*)ms12_583550)),a1);
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms12_1632));
r31w_put_string(((T0*)ms72_39440));
r31w_put_string(((T0*)ms12_583550));
r31w_put_character('\n');
exit(1);
}
/*No:SYSTEM_TOOLS.amiga_system*/
void r72append_lp_in(T72* C,T0* a1,T0* a2){
T0* _sed=NULL;
T2 _i=0;
r7append(((T7*)a1),((T0*)ms72_12180));
_i=(((T73*)a2))->_lower/*12*/;
while (!((_i)>((((T73*)a2))->_upper/*8*/))) {
r7extend(((T7*)a1),'\40');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),r73item(((T73*)a2),_i));
r7extend(((T7*)a1),'\42');
r7extend(((T7*)a1),'\n');
_i=(_i)+(1);
}
r7append(((T7*)a1),((T0*)ms72_33825));
_sed=r72get_environment_variable(C,((T0*)ms13_18788));
/*[IF*/
if((_sed)==((void*)(NULL))){
r7append(((T7*)a1),((T0*)ms72_5301));
}
else{
r7append(((T7*)a1),((T0*)ms72_138));
r7append(((T7*)a1),_sed);
r7append(((T7*)a1),((T0*)ms72_288));
}
/*FI]*/
}
void r72class_file_path(T72* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
/*]*/
/*[IF*/
if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
/*[IF*/
if((/*(IRF4.5first*//*(IRF4.6item*/((((T7*)a2))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)!=('\133')){
r7extend(((T7*)a1),'\133');
}
/*FI]*/
}
/*FI]*/
r7append(((T7*)a1),a2);
/*[IF*/
if(r72slash_separator(C)){
r7set_last(((T7*)a1),'\57');
}
else if(r72backslash_separator(C)){
r7set_last(((T7*)a1),'\134');
}
else if(r72colon_separator(C)){
r7set_last(((T7*)a1),'\72');
}
else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
r7set_last(((T7*)a1),'\135');
}
/*FI]*/
r7append(((T7*)a1),a3);
r7append(((T7*)a1),((T0*)ms12_7020));
}
void r72add_directory(T72* C,T0* a1,T0* a2){
/*[IF*/
if(r72slash_separator(C)){
r7set_last(((T7*)a1),'\57');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\57');
}
else if(r72backslash_separator(C)){
r7set_last(((T7*)a1),'\134');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\134');
}
else if(r72colon_separator(C)){
r7set_last(((T7*)a1),'\72');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\72');
}
else if((((T0*)ms72_756))==((void*)((C)->_system_name/*0*/))){
r7set_last(((T7*)a1),'\135');
r7remove_last(((T7*)a1),1);
r7set_last(((T7*)a1),'\56');
r7append(((T7*)a1),a2);
r7set_last(((T7*)a1),'\135');
}
/*FI]*/
}
void r72make(T72* C){
T2 _i=0;
T0* _system_se_path=NULL;
_system_se_path=r72get_environment_variable(C,((T0*)ms13_18788));
/*[IF*/
if((_system_se_path)==((void*)(NULL))){
_system_se_path=r7twin((T7*)(((T0*)ms13_18788)));
r7to_upper(((T7*)_system_se_path));
_system_se_path=r72get_environment_variable(C,_system_se_path);
/*[IF*/
if((_system_se_path)==((void*)(NULL))){
r31put_string((T31*)(oBC12echo),((T0*)ms72_226958));
_system_se_path=((T0*)ms72_132226);
r31put_string((T31*)(oBC12echo),_system_se_path);
r31put_string((T31*)(oBC12echo),((T0*)ms13_166));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r7has_suffix(((T7*)_system_se_path),((T0*)ms13_13428))){
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,_system_se_path);
}
else{
r31put_string((T31*)(oBC12echo),((T0*)ms72_852461));
/*[IF*/
if(r7has(((T7*)_system_se_path),'\57')){
r31put_string((T31*)(oBC12echo),((T0*)ms72_26690));
r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
r7set_last((T7*)(((T0*)ms12_583550)),'\57');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
r7extend((T7*)(((T0*)ms12_583550)),'\57');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),'\134')){
r31put_string((T31*)(oBC12echo),((T0*)ms72_38940));
r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
r7set_last((T7*)(((T0*)ms12_583550)),'\134');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
r7extend((T7*)(((T0*)ms12_583550)),'\134');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),'\72')){
r31put_string((T31*)(oBC12echo),((T0*)ms72_32565));
r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
r7set_last((T7*)(((T0*)ms12_583550)),'\72');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
r7extend((T7*)(((T0*)ms12_583550)),'\72');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
/*[IF*/
if(r7has(((T7*)_system_se_path),'\135')){
r31put_string((T31*)(oBC12echo),((T0*)ms72_20300));
r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
r7set_last((T7*)(((T0*)ms12_583550)),'\135');
r7remove_last((T7*)(((T0*)ms12_583550)),1);
r7extend((T7*)(((T0*)ms12_583550)),'\56');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_1071));
r7extend((T7*)(((T0*)ms12_583550)),'\135');
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
r31put_string((T31*)(oBC12echo),((T0*)ms72_8302));
r7copy((T7*)(((T0*)ms12_583550)),_system_se_path);
r7append((T7*)(((T0*)ms12_583550)),((T0*)ms13_13428));
r31sfr_connect((T31*)(oBC12echo),oBC12tmp_file_read,((T0*)ms12_583550));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/)){
r31w_put_string(((T0*)ms72_720532));
exit(1);
}
/*FI]*/
r61read_line((T61*)(oBC12tmp_file_read));
C->_system_name=oBC62last_string;
_i=r73index_of((T73*)(oBC72system_list),(C)->_system_name/*0*/);
/*[IF*/
if((_i)>(((T73*)(oBC72system_list))->_upper/*8*/)){
r31w_put_string(((T0*)ms72_44196));
r31w_put_string(((T61*)(oBC12tmp_file_read))->_path/*4*/);
r31w_put_string(((T0*)ms72_23364));
_i=1;
while (!((_i)>(((T73*)(oBC72system_list))->_upper/*8*/))) {
r31w_put_string(r73item((T73*)(oBC72system_list),_i));
r31w_put_character('\n');
_i=(_i)+(1);
}
exit(1);
}
else{
C->_system_name=r73item((T73*)(oBC72system_list),_i);
r31put_string((T31*)(oBC12echo),((T0*)ms72_10175));
r31put_string((T31*)(oBC12echo),(C)->_system_name/*0*/);
r31put_string((T31*)(oBC12echo),((T0*)ms13_288));
}
/*FI]*/
C->_sys_directory=r7twin((T7*)(((T61*)(oBC12tmp_file_read))->_path/*4*/));
/*[IRF3.6remove_suffix*/{T7* C1=(T7*)((C)->_sys_directory/*4*/);
T0* b1=((T0*)ms13_13428);
r7remove_last(C1,(((T7*)b1))->_count/*4*/);
}/*]*/
r61disconnect((T61*)(oBC12tmp_file_read));
C->_bin_directory=r7twin((T7*)((C)->_sys_directory/*4*/));
r72parent_directory(C,(C)->_bin_directory/*8*/);
r72add_directory(C,(C)->_bin_directory/*8*/,((T0*)ms13_957));
}
/*No:SYSTEM_TOOLS.os2_system*/
T6 r72colon_separator(T72* C){
T6 R=0;
/*[IF*/
if((((T0*)ms72_12951))==((void*)((C)->_system_name/*0*/))){
R=1;
}
else if((((T0*)ms72_1356))==((void*)((C)->_system_name/*0*/))){
R=1;
}
/*FI]*/
return R;
}
T6 r72slash_separator(T72* C){
T6 R=0;
/*[IF*/
if((((T0*)ms72_1336))==((void*)((C)->_system_name/*0*/))){
R=1;
}
else if((((T0*)ms72_2470))==((void*)((C)->_system_name/*0*/))){
R=1;
}
/*FI]*/
return R;
}
T6 r72backslash_separator(T72* C){
T6 R=0;
/*[IF*/
if((((T0*)ms72_9331))==((void*)((C)->_system_name/*0*/))){
R=1;
}
else if((((T0*)ms72_708))==((void*)((C)->_system_name/*0*/))){
R=1;
}
else if((((T0*)ms72_654))==((void*)((C)->_system_name/*0*/))){
R=1;
}
/*FI]*/
return R;
}
/*No:SYSTEM_TOOLS.unix_system*/
/*No:SYSTEM_TOOLS.exit_failure_code*/
/*No:SYSTEM_TOOLS.macintosh_system*/
/*No:SYSTEM_TOOLS.bin_directory*/
/*No:SYSTEM_TOOLS.tmp_path*/
/*No:TYPE_FORMAL_GENERIC.start_position*/
void r285jvm_initialize_local(T285* C,T2 a1){
X52jvm_initialize_local((C)->_run_type/*12*/,a1);
}
void r285used_as_reference(T285* C){
/*[IF*/
if(r285is_expanded(C)){
r23used_as_reference((T23*)(r285run_class(C)));
}
/*FI]*/
}
T6 r285is_user_expanded(T285* C){
T6 R=0;
R=X52is_user_expanded((C)->_run_type/*12*/);
return R;
}
T2 r285id(T285* C){
T2 R=0;
R=((T23*)(r285run_class(C)))->_id/*4*/;
return R;
}
T6 r285is_pointer(T285* C){
T6 R=0;
R=X52is_pointer((C)->_run_type/*12*/);
return R;
}
void r285jvm_check_class_invariant(T285* C){
X52jvm_check_class_invariant((C)->_run_type/*12*/);
}
T0* r285formal_arg(T285* C){
T0* R=NULL;
R=/*(IRF4.6item*/r284item(((T284*)(((T96*)(r285formal_generic_list(C)))->_list/*4*/)),(C)->_rank/*8*/)/*)*/;
return R;
}
T0* r285to_runnable(T285* C,T0* a1){
T0* R=NULL;
T0* _gl=NULL;
T0* _t=NULL;
T0* _p=NULL;
T0* _bc_ct=NULL;
T0* _bc_written=NULL;
_bc_written=r59base_class((T59*)(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/));
_bc_ct=X52base_class(a1);
/*[IF*/
if((_bc_written)==((void*)(_bc_ct))){
_gl=X52generic_list(a1);
/*[IF*/
if(((_gl)==((void*)(NULL)))||(((C)->_rank/*8*/)>((((T265*)_gl))->_upper/*8*/))){
r21add_position(X52start_position(a1));
r21add_position(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_60544);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else{
R=r285make_runnable(C,r265item(((T265*)_gl),(C)->_rank/*8*/));
}
/*FI]*/
}
else{
_p=/*(IRF4.6first_parent_for*/r81first_parent_for(((T81*)((((T63*)_bc_ct))->_parent_list/*40*/)),_bc_written)/*)*/;
while (!((_p)==((void*)(NULL)))) {
_t=(((T82*)_p))->_type/*4*/;
_t=X52run_type(X52to_runnable(_t,a1));
/*[IF*/
if((R)==((void*)(NULL))){
R=r285to_runnable(C,_t);
_p=NULL;
}
else{
_p=/*(IRF4.6next_parent_for*/r81next_parent_for(((T81*)((((T63*)_bc_ct))->_parent_list/*40*/)),_bc_written,_p)/*)*/;
}
/*FI]*/
}
/*[IF*/
if((R)==((void*)(NULL))){
r21add_type(a1,((T0*)ms285_18416));
r285warning(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms285_50428));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r285run_class(T285* C){
T0* R=NULL;
R=r22run_class((C)->_run_type/*12*/);
return R;
}
T0* r285formal_generic_list(T285* C){
T0* R=NULL;
R=((T63*)(r59base_class((T59*)(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/))))->_formal_generic_list/*28*/;
return R;
}
/*No:TYPE_FORMAL_GENERIC.is_like_current*/
T0* r285make_runnable(T285* C,T0* a1){
T0* R=NULL;
T0* _rt2=NULL;
_rt2=X52run_type(a1);
/*[IF*/
if((_rt2)==((void*)(NULL))){
/*[IF*/
if((a1)!=((void*)(NULL))){
r21add_position(X52start_position(a1));
}
/*FI]*/
r285error(/*(IRF4.6start_position*/(((T70*)((C)->_formal_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms13_28959));
}
else if(((C)->_run_type/*12*/)==((void*)(NULL))){
C->_run_type=_rt2;
R=(T0*)C;
}
else{
R=r285twin(C);
/*[IRF3.3set_run_type*/((((T285*)(((T285*)R))))->_run_type)=(_rt2);
/*]*/
}
/*FI]*/
return R;
}
T6 r285is_bit(T285* C){
T6 R=0;
R=X52is_bit((C)->_run_type/*12*/);
return R;
}
T0* r285smallest_ancestor(T285* C,T0* a1){
T0* R=NULL;
R=X52smallest_ancestor((C)->_run_type/*12*/,a1);
return R;
}
void r285jvm_write_local(T285* C,T2 a1){
X52jvm_write_local((C)->_run_type/*12*/,a1);
}
/*No:TYPE_FORMAL_GENERIC.fatal_error*/
/*No:TYPE_FORMAL_GENERIC.set_run_type*/
/*No:TYPE_FORMAL_GENERIC.fz_bnga*/
T0* r285run_time_mark(T285* C){
T0* R=NULL;
R=X52run_time_mark((C)->_run_type/*12*/);
return R;
}
T6 r285is_expanded(T285* C){
T6 R=0;
R=X52is_expanded((C)->_run_type/*12*/);
return R;
}
T2 r285jvm_if_x_eq(T285* C){
T2 R=0;
R=X52jvm_if_x_eq((C)->_run_type/*12*/);
return R;
}
void r285jvm_xnewarray(T285* C){
X52jvm_xnewarray((C)->_run_type/*12*/);
}
void r285warning(T0* a1,T0* a2){
r21add_position(a1);
r21warning((T21*)(oBC12eh),a2);
}
void r285jvm_push_local(T285* C,T2 a1){
X52jvm_push_local((C)->_run_type/*12*/,a1);
}
/*No:TYPE_FORMAL_GENERIC.fz_dot*/
/*No:TYPE_FORMAL_GENERIC.is_like_feature*/
T6 r285is_a(T285* C,T0* a1){
T6 R=0;
R=X52is_a((C)->_run_type/*12*/,a1);
return R;
}
/*No:TYPE_FORMAL_GENERIC.written_mark*/
T6 r285is_character(T285* C){
T6 R=0;
R=X52is_character((C)->_run_type/*12*/);
return R;
}
void r285error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r285make(T285* C,T0* a1,T2 a2){
C->_rank=a2;
C->_formal_name=a1;
}
T2 r285jvm_convert_to(T285* C,T0* a1){
T2 R=0;
R=X52jvm_convert_to((C)->_run_type/*12*/,a1);
return R;
}
T6 r285is_array(T285* C){
T6 R=0;
R=X52is_array((C)->_run_type/*12*/);
return R;
}
void r285fatal_error_generic_list(T285* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_FORMAL_GENERIC.fz_bga*/
T2 r285jvm_push_default(T285* C){
T2 R=0;
R=X52jvm_push_default((C)->_run_type/*12*/);
return R;
}
T6 r285is_dummy_expanded(T285* C){
T6 R=0;
R=X52is_dummy_expanded((C)->_run_type/*12*/);
return R;
}
T0* r285generic_list(T285* C){
T0* R=NULL;
/*[IF*/
if(r285is_generic(C)){
R=X52generic_list((C)->_run_type/*12*/);
}
else{
r285fatal_error_generic_list(C);
}
/*FI]*/
return R;
}
T0* r285base_class(T285* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r285base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
T2 r285jvm_if_x_ne(T285* C){
T2 R=0;
R=X52jvm_if_x_ne((C)->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.formal_name*/
T0* r285base_class_name(T285* C){
T0* R=NULL;
R=X52base_class_name((C)->_run_type/*12*/);
return R;
}
void r285jvm_standard_is_equal(T285* C){
X52jvm_standard_is_equal((C)->_run_type/*12*/);
}
/*No:TYPE_FORMAL_GENERIC.is_formal_generic*/
T6 r285is_a_in(T285* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((/*(IRF4.6written_mark*/(((T70*)((C)->_formal_name/*4*/)))->_to_string/*0*//*)*/)==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r285to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_FORMAL_GENERIC.rank*/
T0* r285look_up_for(T285* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r285base_class(C)),a1,a2);
return R;
}
/*No:TYPE_FORMAL_GENERIC.run_type*/
T0* r285expanded_initializer(T285* C){
T0* R=NULL;
R=X52expanded_initializer((C)->_run_type/*12*/);
return R;
}
T6 r285has_creation(T285* C,T0* a1){
T6 R=0;
/*[IF*/
if((C)==((void*)((C)->_run_type/*12*/))){
R=r63has_creation((T63*)(r285base_class(C)),a1);
}
else{
R=X52has_creation((C)->_run_type/*12*/,a1);
}
/*FI]*/
return R;
}
T2 r285jvm_method_flags(T285* C){
T2 R=0;
R=X52jvm_method_flags((C)->_run_type/*12*/);
return R;
}
T6 r285is_boolean(T285* C){
T6 R=0;
R=X52is_boolean((C)->_run_type/*12*/);
return R;
}
T6 r285is_generic(T285* C){
T6 R=0;
R=X52is_generic((C)->_run_type/*12*/);
return R;
}
void r285jvm_xaload(T285* C){
X52jvm_xaload((C)->_run_type/*12*/);
}
T6 r285is_real(T285* C){
T6 R=0;
R=X52is_real((C)->_run_type/*12*/);
return R;
}
T6 r285is_any(T285* C){
T6 R=0;
R=X52is_any((C)->_run_type/*12*/);
return R;
}
T0* r285twin(T285* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T285*)R)=*C;
return R;
}
T6 r285is_basic_eiffel_expanded(T285* C){
T6 R=0;
R=X52is_basic_eiffel_expanded((C)->_run_type/*12*/);
return R;
}
void r285jvm_descriptor_in(T285* C,T0* a1){
X52jvm_descriptor_in((C)->_run_type/*12*/,a1);
}
T6 r285is_string(T285* C){
T6 R=0;
R=X52is_string((C)->_run_type/*12*/);
return R;
}
T6 r285is_native_array(T285* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
T6 r285is_integer(T285* C){
T6 R=0;
R=X52is_integer((C)->_run_type/*12*/);
return R;
}
/*No:TYPE_FORMAL_GENERIC.is_anchored*/
/*No:TYPE_FORMAL_GENERIC.is_run_type*/
T6 r285is_reference(T285* C){
T6 R=0;
R=X52is_reference((C)->_run_type/*12*/);
return R;
}
T6 r285is_none(T285* C){
T6 R=0;
R=X52is_none((C)->_run_type/*12*/);
return R;
}
void r285jvm_return_code(T285* C){
X52jvm_return_code((C)->_run_type/*12*/);
}
void r285jvm_target_descriptor_in(T285* C,T0* a1){
X52jvm_target_descriptor_in((C)->_run_type/*12*/,a1);
}
T0* r285constraint(T285* C){
T0* R=NULL;
R=((T283*)(r285formal_arg(C)))->_constraint/*4*/;
return R;
}
void r285jvm_xastore(T285* C){
X52jvm_xastore((C)->_run_type/*12*/);
}
/*No:TYPE_FORMAL_GENERIC.is_like_argument*/
T2 r285jvm_stack_space(T285* C){
T2 R=0;
/*[IF*/
if(r285is_double(C)){
R=2;
}
else{
R=1;
}
/*FI]*/
return R;
}
T6 r285is_double(T285* C){
T6 R=0;
R=X52is_double((C)->_run_type/*12*/);
return R;
}
T2 r285jvm_expanded_from_reference(T285* C,T0* a1){
T2 R=0;
R=X52jvm_expanded_from_reference((C)->_run_type/*12*/,a1);
return R;
}
/*No:MANIFEST_STRING.static_value*/
/*No:MANIFEST_STRING.is_static*/
/*No:MANIFEST_STRING.is_manifest_string*/
/*No:MANIFEST_STRING.start_position*/
/*No:MANIFEST_STRING.to_string*/
T0* r174add_comment(T174* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r174to_integer(T174* C){
T2 R=0;
r174error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:MANIFEST_STRING.use_current*/
/*No:MANIFEST_STRING.jvm_branch_if_true*/
T2 r174fieldref_idx(T174* C){
T2 R=0;
R=r29idx_fieldref_for_manifest_string((T29*)(oBC12constant_pool),(C)->_mangling/*24*/);
return R;
}
T0* r174to_runnable(T174* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_mangling/*24*/)==((void*)(NULL))){
C->_mangling=r346register((T0*)C);
}
/*FI]*/
R=(T0*)C;
return R;
}
T2 r174compile_to_jvm_into(T174* C,T0* a1){
T2 R=0;
R=1;
r174compile_to_jvm(C);
return R;
}
/*No:MANIFEST_STRING.is_pre_computable*/
/*No:MANIFEST_STRING.fz_iinaiv*/
/*No:MANIFEST_STRING.result_type*/
void r174break_line(T174* C){
/*[IF*/
if(((C)->_break/*12*/)==((void*)(NULL))){
C->_break=se_ma175(1,
(((T7*)((C)->_to_string/*8*/))->_count/*4*/)+(1));
}
else{
r175add_last((T175*)((C)->_break/*12*/),(((T7*)((C)->_to_string/*8*/))->_count/*4*/)+(1));
}
/*FI]*/
}
/*No:MANIFEST_STRING.compile_to_jvm_assignment*/
/*No:MANIFEST_STRING.percent*/
/*No:MANIFEST_STRING.compile_to_jvm_old*/
/*No:MANIFEST_STRING.jvm_assign*/
/*No:MANIFEST_STRING.jvm_branch_if_false*/
void r174compile_to_jvm(T174* C){
T2 _idx=0;
_idx=r174fieldref_idx(C);
r28opcode_getstatic((T28*)(oBC12code_attribute),_idx,1);
}
/*No:MANIFEST_STRING.is_result*/
/*No:MANIFEST_STRING.can_be_dropped*/
T0* r174twin(T174* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T174*)R)=*C;
return R;
}
void r174compile_target_to_jvm(T174* C){
T2 _idx=0;
_idx=r174fieldref_idx(C);
r28opcode_getstatic((T28*)(oBC12code_attribute),_idx,1);
}
/*No:MANIFEST_STRING.isa_dca_inline_argument*/
/*No:MANIFEST_STRING.add*/
void r174error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r174make(T174* C,T0* a1){
C->_start_position=a1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,0);
C->_to_string=(T0*)n;
}
}
void r174add_percent(T174* C,T3 a1){
r7extend((T7*)((C)->_to_string/*8*/),a1);
/*[IF*/
if(((C)->_percent/*20*/)==((void*)(NULL))){
C->_percent=se_ma175(1,
((T7*)((C)->_to_string/*8*/))->_count/*4*/);
}
else{
r175add_last((T175*)((C)->_percent/*20*/),((T7*)((C)->_to_string/*8*/))->_count/*4*/);
}
/*FI]*/
}
/*No:MANIFEST_STRING.is_current*/
/*No:MANIFEST_STRING.break*/
/*No:MANIFEST_STRING.is_void*/
/*No:MANIFEST_STRING.mangling*/
void r174add_ascii(T174* C,T3 a1){
r7extend((T7*)((C)->_to_string/*8*/),a1);
/*[IF*/
if(((C)->_ascii/*16*/)==((void*)(NULL))){
C->_ascii=se_ma175(1,
((T7*)((C)->_to_string/*8*/))->_count/*4*/);
}
else{
r175add_last((T175*)((C)->_ascii/*16*/),((T7*)((C)->_to_string/*8*/))->_count/*4*/);
}
/*FI]*/
}
/*No:MANIFEST_STRING.afd_check*/
/*No:MANIFEST_STRING.ascii*/
T0* r174type_string(void){
if(fBC12type_string==0){
fBC12type_string=1;
{T276*n=malloc(sizeof(*n));
*n=M276;
r276make(n,NULL);
oBC12type_string=(T0*)n;
}
}
return oBC12type_string;}
T0* r191jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
/*No:FORMAL_ARG_LIST.fz_jvm_root*/
T0* r191start_position(T191* C){
T0* R=NULL;
R=((T194*)(r195first((T195*)((C)->_flat_list/*8*/))))->_start_position/*4*/;
return R;
}
T6 r191is_a_in(T191* C,T0* a1,T0* a2){
T6 R=0;
T0* _t2=NULL;
T0* _t1=NULL;
T2 _i=0;
_i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
/*[IF*/
if((/*(IRF4.6count*/(((T195*)((((T191*)a1))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(_i)){
r21add_position(r191start_position(((T191*)a1)));
r191error(r191start_position(C),((T0*)ms191_36576));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
R=1;
while (!((!(R))||((_i)==(0)))) {
_t1=r191type(C,_i);
_t2=r191type(((T191*)a1),_i);
/*[IF*/
if(!(X52is_a_in(_t1,_t2,a2))){
R=0;
r21print_as_error((T21*)(oBC12eh));
r21add_position(X52start_position(_t1));
r21add_position(X52start_position(_t2));
/*[IRF3.6append*/{T0* b1=((T0*)ms191_26862);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
void r191add_last(T191* C,T0* a1){
T0* _n2=NULL;
T2 _i=0;
_i=1;
while (!((r195item((T195*)((C)->_flat_list/*8*/),_i))==((void*)(NULL)))) {
_n2=r195item((T195*)((C)->_flat_list/*8*/),_i);
/*[IF*/
if(((((T194*)_n2))->_to_string/*8*/)==((void*)((((T194*)a1))->_to_string/*8*/))){
r21add_position((((T194*)a1))->_start_position/*4*/);
r21add_position((((T194*)_n2))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms183_36984);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IRF3.6put*/{T195* C1=(T195*)((C)->_flat_list/*8*/);
T0* b1=a1;
T2 b2=_i;
((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
}/*]*/
/*[IRF3.3set_rank*/((((T194*)(((T194*)a1))))->_rank)=(_i);
/*]*/
}
/*No:FORMAL_ARG_LIST.em1*/
T2 r191jvm_offset_of(T191* C,T0* a1){
T2 R=0;
T2 _rank=0;
T2 _i=0;
_rank=X186rank(a1);
_i=1;
while (!((_i)==(_rank))) {
R=(R)+(X52jvm_stack_space(X52run_type(r191type(C,_i))));
_i=(_i)+(1);
}
return R;
}
/*No:FORMAL_ARG_LIST.fz_cad*/
void r191check_name_clash(T191* C,T0* a1){
T2 _i=0;
_i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
while (!((_i)==(0))) {
/*[IRF3.6name_clash*/{T194* C1=(T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/);
T0* b1=a1;
r194name_clash_for(C1,b1,((T0*)ms194_120934));
}/*]*/
_i=(_i)-(1);
}
}
void r191with(T191* C,T0* a1,T0* a2){
*((T191*)(C))=*((T191*)(a1));
r191dynamic_runnable(C,a2);
r191check_name_clash(C,a2);
}
/*No:FORMAL_ARG_LIST.list*/
int fBC12jvm_root_descriptor=0;
T0*oBC12jvm_root_descriptor=NULL;
T0* r191jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r191jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}
T2 r191jvm_switch_push(T191* C,T0* a1){
T2 R=0;
T2 _i=0;
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/))) {
R=(R)+(r191jvm_switch_push_ith(C,a1,_i));
_i=(_i)+(1);
}
return R;
}
/*No:FORMAL_ARG_LIST.fatal_error*/
/*No:FORMAL_ARG_LIST.nb_errors*/
T0* r191type(T191* C,T2 a1){
T0* R=NULL;
R=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),a1)/*)*/))->_result_type/*12*/;
return R;
}
T2 r191rank_of(T191* C,T0* a1){
T2 R=0;
R=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
while (!(((R)==(0))||((a1)==((void*)(((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),R)/*)*/))->_to_string/*8*/))))) {
R=(R)-(1);
}
return R;
}
void r191jvm_descriptor_in(T191* C,T0* a1){
T0* _at=NULL;
T2 _i=0;
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/))) {
_at=X52run_type(r191type(C,_i));
/*[IF*/
if(X52is_reference(_at)){
r7append(((T7*)a1),r191jvm_root_descriptor());
}
else{
X52jvm_descriptor_in(_at,a1);
}
/*FI]*/
_i=(_i)+(1);
}
}
void r191dynamic_runnable(T191* C,T0* a1){
T0* _n2=NULL;
T0* _n1=NULL;
T2 _i=0;
C->_flat_list=r195twin((T195*)((C)->_flat_list/*8*/));
_i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
while (!((_i)==(0))) {
_n1=r195item((T195*)((C)->_flat_list/*8*/),_i);
_n2=r194to_runnable(((T194*)_n1),a1);
/*[IF*/
if((_n2)==((void*)(NULL))){
r191error((((T194*)_n1))->_start_position/*4*/,((T0*)ms183_18336));
}
else{
/*[IRF3.6put*/{T195* C1=(T195*)((C)->_flat_list/*8*/);
T0* b1=_n2;
T2 b2=_i;
((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
}/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
T2 r191jvm_switch_push_ith(T191* C,T0* a1,T2 a2){
T2 R=0;
T2 _offset=0;
T0* _at=NULL;
T0* _ft=NULL;
_offset=r24argument_offset_of((T24*)(oBC12jvm),/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),a2)/*)*/);
_ft=X52run_type(r191type(C,a2));
_at=X52run_type(r191type(((T191*)a1),a2));
X52jvm_push_local(_ft,_offset);
R=X52jvm_convert_to(_ft,_at);
return R;
}
/*No:FORMAL_ARG_LIST.fz_dot*/
T6 r191is_runnable(T191* C,T0* a1){
T6 R=0;
T0* _t=NULL;
T0* _n2=NULL;
T0* _n1=NULL;
T2 _i=0;
R=1;
_i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
while (!((!(R))||((_i)==(0)))) {
_t=r191type(C,_i);
/*[IF*/
if(X52is_run_type(_t)){
/*[IF*/
if((X52run_type(_t))!=((void*)(_t))){
R=0;
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(R){
_i=((T195*)((C)->_flat_list/*8*/))->_upper/*12*/;
while (!((_i)==(0))) {
_n1=r195item((T195*)((C)->_flat_list/*8*/),_i);
_n2=r194to_runnable(((T194*)_n1),a1);
/*[IF*/
if((_n2)==((void*)(NULL))){
r191error((((T194*)_n1))->_start_position/*4*/,((T0*)ms183_18336));
_i=0;
}
else{
_i=(_i)-(1);
}
/*FI]*/
}
r191check_name_clash(C,a1);
}
/*FI]*/
return R;
}
/*No:FORMAL_ARG_LIST.count*/
void r191error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r191make(T191* C,T0* a1){
T0* _an2=NULL;
T2 _rank=0;
T2 _i=0;
T0* _tla2=NULL;
T0* _tla=NULL;
T0* _tlf=NULL;
T0* _an=NULL;
r191declaration_list_make(C,a1);
_i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
while (!((_i)==(0))) {
_an=/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/;
_tlf=(((T194*)_an))->_result_type/*12*/;
if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
case 259:
break;
default:
_tlf=NULL;
};/*[IF*/
if((_tlf)!=((void*)(NULL))){
_rank=r191rank_of(C,X50to_string((((T259*)_tlf))->_like_what/*8*/));
/*[IF*/
if((_rank)==(_i)){
r21add_position((((T259*)_tlf))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else if((_rank)>(0)){
{T192*n=malloc(sizeof(*n));
*n=M192;
r192refer_to(n,X50start_position((((T259*)_tlf))->_like_what/*8*/),(T0*)C,_rank);
_an2=(T0*)n;
}
{T262*n=malloc(sizeof(*n));
*n=M262;
r262make(n,(((T259*)_tlf))->_start_position/*4*/,_an2);
_tla=(T0*)n;
}
/*[IRF3.3set_result_type*/((((T194*)(((T194*)_an))))->_result_type)=(_tla);
/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(r76all_check((T76*)(oBC12run_control))){
_i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
while (!((_i)==(0))) {
_tla=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_i)/*)*/))->_result_type/*12*/;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
_rank=r191rank_of(C,r192to_string((T192*)((((T262*)_tla))->_like_what/*8*/)));
_tla2=((T194*)(/*(IRF4.6name*/r195item(((T195*)((C)->_flat_list/*8*/)),_rank)/*)*/))->_result_type/*12*/;
if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
case 262:
break;
default:
_tla2=NULL;
};/*[IF*/
if((_tla2)!=((void*)(NULL))){
r21add_position((((T262*)_tla))->_start_position/*4*/);
r21add_position((((T262*)_tla2))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
void r191declaration_list_make(T191* C,T0* a1){
T2 _actual_count=0;
T2 _il=0;
C->_list=a1;
_il=((T313*)((C)->_list/*4*/))->_upper/*8*/;
while (!((_il)==(0))) {
_actual_count=(_actual_count)+(X312count(r313item((T313*)((C)->_list/*4*/),_il)));
_il=(_il)-(1);
}
{T195*n=malloc(sizeof(*n));
*n=M195;
r195make(n,1,_actual_count);
C->_flat_list=(T0*)n;
}
_il=1;
while (!((_il)>(((T313*)((C)->_list/*4*/))->_upper/*8*/))) {
X312append_in(r313item((T313*)((C)->_list/*4*/),_il),(T0*)C);
_il=(_il)+(1);
}
}
/*No:FORMAL_ARG_LIST.name*/
/*No:FORMAL_ARG_LIST.flat_list*/
T2 r191jvm_stack_space(T191* C){
T2 R=0;
T2 _i=0;
_i=/*(IRF4.6count*/(((T195*)((C)->_flat_list/*8*/)))->_upper/*12*//*)*/;
while (!((_i)==(0))) {
R=(R)+(X52jvm_stack_space(X52run_type(r191type(C,_i))));
_i=(_i)-(1);
}
return R;
}
T0* r53jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
void r53fall_down(T53* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((C)->_current_type/*4*/);
_running=(((T23*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((C)->_current_type/*4*/);
_i=(((T340*)_running))->_lower/*12*/;
while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
_sub_rc=r340item(((T340*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r23get_feature(((T23*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_2.use_current_state*/
/*No:RUN_FEATURE_2.actuals_clients*/
/*No:RUN_FEATURE_2.ucs_false*/
/*No:RUN_FEATURE_2.is_static*/
/*No:RUN_FEATURE_2.fz_jvm_root*/
T0* r53start_position(T53* C){
T0* R=NULL;
R=r319start_position((T319*)((C)->_base_feature/*24*/));
return R;
}
T6 r53use_current(T53* C){
T6 R=0;
{int z1=(C)->_use_current_state/*20*/;
if((14==z1)){
R=1;
}
else
if((13==z1)){
}
else
if((15==z1)){
C->_use_current_state=16;
/*[IRF3.3compute_use_current*/((((T53*)(C)))->_use_current_state)=(14);
/*]*/
R=r53use_current(C);
}
else {R=1;
}}
return R;
}
void r53mapping_jvm(T53* C){
T2 _stack_level=0;
T2 _idx=0;
r24push_target_as_target((T24*)(oBC12jvm));
/*[IF*/
if(X52is_basic_eiffel_expanded((C)->_current_type/*4*/)){
}
else{
_stack_level=(X52jvm_stack_space((C)->_result_type/*28*/))-(1);
_idx=r29idx_fieldref((T29*)(oBC12constant_pool),(T0*)C);
r28opcode_getfield((T28*)(oBC12code_attribute),_idx,_stack_level);
}
/*FI]*/
}
T0*oBC27tmp_jvm_descriptor=NULL;
/*No:RUN_FEATURE_2.ucs_not_computed*/
/*No:RUN_FEATURE_2.is_pre_computable*/
T0* r53run_class(T53* C){
T0* R=NULL;
R=X52run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_2.result_type*/
/*No:RUN_FEATURE_2.base_feature*/
/*No:RUN_FEATURE_2.static_value_mem*/
T2 r53jvm_local_variable_offset(T53* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
R=(R)+(r182jvm_offset_of((T182*)(/*(IRF4.1local_vars*/NULL/*)*/),a1));
return R;
}
T2 r53arg_count(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
return R;
}
T0* r53jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r53jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}
T6 r53is_exported_in(T53* C,T0* a1){
T6 R=0;
R=r103gives_permission_to((T103*)(r53clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_2.arguments*/
T2 r53jvm_argument_offset(T53* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
R=(R)+(r191jvm_offset_of((T191*)(/*(IRF4.1arguments*/NULL/*)*/),a1));
return R;
}
/*No:RUN_FEATURE_2.can_be_dropped*/
void r53initialize(T53* C){
C->_result_type=((T319*)((C)->_base_feature/*24*/))->_result_type/*20*/;
C->_result_type=X52to_runnable((C)->_result_type/*28*/,(C)->_current_type/*4*/);
}
void r53update_tmp_jvm_descriptor(T53* C){
T0* _rt=NULL;
_rt=X52run_type((C)->_result_type/*28*/);
/*[IF*/
if(X52is_reference(_rt)){
r7append((T7*)(oBC27tmp_jvm_descriptor),r53jvm_root_descriptor());
}
else{
X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
}
/*FI]*/
}
T2 r53jvm_max_locals(T53* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_result_type/*28*/)!=((void*)(NULL))){
R=(R)+(X52jvm_stack_space((C)->_result_type/*28*/));
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_2.clients_memory*/
/*No:RUN_FEATURE_2.current_type*/
void r53add_client(T53* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T343*n=malloc(sizeof(*n));
*n=M343;
r343with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r23add_client((T23*)(r53run_class(C)),a1);
}
/*No:RUN_FEATURE_2.ucs_in_computation*/
/*No:RUN_FEATURE_2.compute_use_current*/
void r53make(T53* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r53run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r53initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_2.ucs_true*/
void r53jvm_define(T53* C){
T0* _cp=NULL;
T2 _descriptor=0;
T2 _name_idx=0;
_cp=oBC12constant_pool;
_name_idx=r29idx_utf8(((T29*)_cp),X50to_string((C)->_name/*16*/));
_descriptor=r29idx_utf8(((T29*)_cp),r53jvm_descriptor(C));
r40add((T40*)(oBC12field_info),1,_name_idx,_descriptor);
}
/*No:RUN_FEATURE_2.name*/
/*No:RUN_FEATURE_2.local_vars*/
T2 r53jvm_result_offset(T53* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
return R;
}
/*No:RUN_FEATURE_2.jvm_field_or_method*/
void r53afd_check(T53* C){
T0* _rc=NULL;
_rc=X52run_class(X52run_type((C)->_result_type/*28*/));
}
T0* r53clients(T53* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X52base_class((C)->_current_type/*4*/);
_bfbc=((T319*)((C)->_base_feature/*24*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T319*)((C)->_base_feature/*24*/))->_clients/*16*/;
}
else{
R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}
T0* r53jvm_descriptor(T53* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
/*]*/
r53update_tmp_jvm_descriptor(C);
R=oBC27tmp_jvm_descriptor;
return R;
}
void r87make_n(T87* C,T0* a1){
T2 _j=0;
T2 _i=0;
_i=(((T88*)a1))->_upper/*8*/;
while (!((_i)<(0))) {
_j=(_i)-(1);
while (!((_j)<(0))) {
/*[IF*/
if((X50to_key(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_i]/*)*/))==((void*)(X50to_key(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_j]/*)*/)))){
r87fe_multiple(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_i]/*)*/,/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[_j]/*)*/);
}
/*FI]*/
_j=(_j)-(1);
}
_i=(_i)-(1);
}
C->_first=/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[0]/*)*/;
_i=(((T88*)a1))->_upper/*8*/;
/*[IF*/
if((_i)>(0)){
{T88*n=malloc(sizeof(*n));
*n=M88;
r88make(n,_i);
C->_remainder=(T0*)n;
}
_j=0;
while (!((_i)==(0))) {
/*[IRF3.5put*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_j]=(/*(IRF4.6item*/((((T88*)a1))->_storage/*0*/)[(_j)+(1)]/*)*/);
/*]*/
_j=(_j)+(1);
_i=(_i)-(1);
}
}
/*FI]*/
}
T0* r87feature_name(T87* C,T0* a1){
T0* R=NULL;
T2 _i=0;
/*[IF*/
if((X50to_key((C)->_first/*0*/))==((void*)(a1))){
R=(C)->_first/*0*/;
}
else if(((C)->_remainder/*4*/)==((void*)(NULL))){
}
else{
_i=((T88*)((C)->_remainder/*4*/))->_upper/*8*/;
while (!(((_i)<(0))||((a1)==((void*)(X50to_key(/*(IRF4.6item*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/)))))) {
_i=(_i)-(1);
}
/*[IF*/
if((_i)>=(0)){
R=/*(IRF4.6item*/(((T88*)((C)->_remainder/*4*/))->_storage/*0*/)[_i]/*)*/;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r87root_procedure_name(T87* C,T0* a1){
T0* R=NULL;
T0* _fn=NULL;
T2 _i=0;
_i=r87count(C);
while (!(((_i)==(0))||((R)!=((void*)(NULL))))) {
_fn=r87item(C,_i);
/*[IF*/
if(r7is_equal((T7*)(X50to_string(_fn)),a1)){
R=_fn;
if(NULL!=(R))switch(((T0*)R)->id) {
case 151:
break;
default:
R=NULL;
};}
/*FI]*/
_i=(_i)-(1);
}
return R;
}